def column_letter_to_index(column_letter):
    """
    Convert an Excel column letter (e.g., 'A', 'Z', 'AA') to a zero-based column index.
    
    :param column_letter: str, Excel column letter to convert
    :return: int, zero-based column index
    """
    column_index = 0
    for i, letter in enumerate(reversed(column_letter.upper())):
        # Convert the letter to a number (A=1, B=2, ..., Z=26)
        num = ord(letter) - ord('A') + 1
        # Increment the column index
        column_index += num * (26 ** i)
    # Convert to zero-based index
    return column_index - 1